1
Les Mécanismes du Contrôle de Copie
AI037Lesson 16
00:00

Maîtriser le cycle de vie d'un objet C++ revient à maîtriser les mécanismes fondamentaux de son existence au sein du tas et pile. Le contrôle de copie définit la manière dont une classe gère sa durée de vie à travers deux opérations : le constructeur de copie et le opérateur d'affectation par copie.

1. Initialisation vs. Affectation

Initialisation directe (par exemple, string dots(10, '.')) appelle un constructeur directement. Toutefois, initialisation par copie (string s2 = dots) dépend du constructeur de copie. Contrairement à l'initialisation, affectation (trans = accum) écrase un objet existant en utilisant l'opérateur =. Une contrainte essentielle : le paramètre du constructeur de copie doit être une référence (const Foo&); sinon, passer un argument par valeur déclencherait une boucle récursive infinie de rappels de copie.

Objet source[Données A]Objet destination[Données A]Copie membre à membreConstructeur de copie / opérateur =

2. Le Rôle de la Synthèse

Si vous ne définissez pas ces membres, le compilateur fournit des versions synthétisées qui effectuent des copies membre à membre. Attention : bien que suffisantes pour les types simples, elles échouent souvent pour les classes gérant la mémoire dynamique, entraînant des pointeurs pendus ou des double-libérations.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>